// 认证工具函数
import { Toast } from 'antd-mobile';

// 获取骑手信息
export const getRiderInfo = () => {
  try {
    const riderInfo = localStorage.getItem('riderInfo');
    return riderInfo ? JSON.parse(riderInfo) : null;
  } catch (error) {
    console.error('获取骑手信息失败:', error);
    return null;
  }
};

// 保存骑手信息
export const setRiderInfo = (riderInfo) => {
  try {
    localStorage.setItem('riderInfo', JSON.stringify(riderInfo));
  } catch (error) {
    console.error('保存骑手信息失败:', error);
  }
};

// 清除骑手信息
export const clearRiderInfo = () => {
  try {
    localStorage.removeItem('riderInfo');
  } catch (error) {
    console.error('清除骑手信息失败:', error);
  }
};

// 检查是否已登录
export const isLoggedIn = () => {
  const riderInfo = getRiderInfo();
  return !!riderInfo;
};

// 检查骑手状态是否正常
export const isRiderActive = () => {
  const riderInfo = getRiderInfo();
  return riderInfo && riderInfo.status === 'ACTIVE';
};

// 获取骑手ID
export const getRiderId = () => {
  const riderInfo = getRiderInfo();
  return riderInfo ? riderInfo._id : null;
};

// 获取骑手姓名
export const getRiderName = () => {
  const riderInfo = getRiderInfo();
  return riderInfo ? riderInfo.name : '';
};

// 获取骑手手机号
export const getRiderPhone = () => {
  const riderInfo = getRiderInfo();
  return riderInfo ? riderInfo.phone : '';
};

// 登出
export const logout = () => {
  clearRiderInfo();
  // 可以在这里添加其他清理逻辑
};

// 检查登录状态并跳转
export const checkAuthAndRedirect = (navigate) => {
    if (!isLoggedIn()) {
        navigate('/login');
        return false;
    }
    
    const riderInfo = getRiderInfo();
    if (riderInfo.status === 'PENDING') {
        navigate('/pending');
        return false;
    }
    
    if (riderInfo.status === 'SUSPENDED') {
        Toast.show({ content: '账户已被禁用，请联系管理员' });
        logout();
        navigate('/login');
        return false;
    }
    
    if (!isRiderActive()) {
        return false;
    }
    
    return true;
}; 